package com.kamistoat.meimeistore.commonsecurity.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 角色认证注解. 和 @RequiresPermissions 相同的理解方式
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresRoles {
    /**
     * 所需拥有的角色，以String数组的形式给出
     */
    String[] value() default {};

    /**
     * value() 中角色的关系。默认是AND关系
     */
    Logical logical() default Logical.AND;
}
